layui.define(['jquery', 'layer'], function (exports) {
    let $ = layui.jquery,
        layer = layui.layer;

    let serverUrl = 'http://localhost:8100';
    // let serverUrl = 'http://47.99.200.116:8100';

    let request = {

        login: function (obj) {
            that = this;
            $.ajax({
                url: serverUrl + '/login',
                type: 'post',
                contentType: "application/x-www-form-urlencoded",
                data: {
                    username: obj.username,
                    password: obj.password,
                    authCode: obj.authCode,
                    rememberme: obj.rememberme
                },
                success: function (res) {

                    if (res.code === 200) {

                        // 登录成功，将返回的登录凭证数据保存在Cookie中
                        layer.msg('登录成功，即将跳转~', function () {
                            location.href = serverUrl + '/index'
                        });
                    } else {
                        layer.msg(res.msg, {time:1000}, function () {
                            that.refreshCaptcha();
                        });
                    }
                }
            })
        },

        refreshCaptcha: function() {
            let path = serverUrl + "/captcha?r=" + Math.random();
            document.getElementById("captcha").src = path;
        },


        getMenu: function() {
            let that = this;
            if (!$('#side-nav').length) {
                return;
            }
            $.ajax({
                url: serverUrl + '/menu',
                type: 'get',
                success: function(res) {
                    // console.log(res.data.menu)
                    if(res.code === 200){
                        var menuList = res.data.menu;
                        var items = [];
                        var _ul = $('<ul></ul>').addClass('nav').attr('id', 'nav');

                        $.each(menuList, function(index, val) {
                            var icon = val.icon ? '<i class="layui-icon layui-icon-'+ val.icon +'"></i>': '<i class="layui-icon layui-icon-app"></i>';
                            var item = '<li id="menu' + val.id + '"><a _href="' + val.url + '">'+ icon +'<cite>' + val.title +
                                '</cite><i class="iconfont nav_right">&#xe697;</i></a></li>';

                            items.push(item);
                            if (val.children && val.children.length) {
                                //有二级子菜单
                                setTimeout(function() {
                                    that.getSubMenu(val.id, val.children);
                                }, 500);
                            }
                        });
                        $('#side-nav').empty();
                        _ul.append(items.join(''));
                        $('#side-nav').append(_ul);
                    }else {
                        layer.msg(res.msg, function () {});
                    }
                }
            })
        },

        /**
         * @param {Object} id 上级子菜单id,拼接menu获取元素
         * @param {Object} subList 子菜单列表
         */
        getSubMenu: function(id, subList) {
            var that = this;
            var subItems = [];
            var subUl = $('<ul></ul>').addClass('sub-menu');
            $.each(subList, function(idx, sub) {
                var subItem = '<li id="menu' + sub.id + '"><a _href="' + sub.url + '"><i class="iconfont">&#xe6a7;</i><cite>' +
                    sub.title + '</cite></a></li>';
                subItems.push(subItem);
                if (sub.children && sub.children.length) {
                    setTimeout(function() {
                        that.getSubMenu(sub.id, sub.children);
                    }, 1500);
                }
            });
            subUl.append(subItems.join(''));
            $('#menu' + id).append(subUl);
        }

    }

    exports('app', request);
});
